<h2>while</h2>


先介绍一个新东西：注释
python里，以“#”开头的文字会被忽略，不会被认为是可执行的代码。
print ("hello world")
和
print ("hello world")    #输出一行字
是同样的效果。但后者可以帮助开发者更好地理解代码。
在接下来的课程中，我会经常用注释来解释代码。
 
#======== 进入今天的正题 ========#
 
用if改进完我们的小游戏后，功能已经基本实现了。很多同学做完后纷纷表示，每次只能猜一次，完了之后又得重新run，感觉好麻烦。能不能有办法让玩家一直猜，直到猜中为止？答案很显然：如果这种小问题都解决不了，那 python 可就弱爆了。
 
最简单的解决方法就是：while
 
同 if 一样，whil e也是一种控制流语句，另外它也被称作循环语句。继续来看渣画质手绘流程图：

while，英文翻译过来就是“当...的时候”。
程序执行到 while 处，“当”条件为 True 时，就去执行 while 内部的代码；“当”条件为 False 时，就跳过。
 
语法为：
while 条件:
    循环执行的语句
 
同 if 一样，注意冒号，注意缩进。
 
今天的栗子：
# coding: gbk
a = 1             # 为了后面的条件能满足，先把a设为1
while a != 0:     # 如果a不等于0就循环（1不等于0）
    print("please input")
    a = int(input())     # 在循环内部获取输入，改变a的值（想想看不改会怎样？）
print("over")
 
程序执行后，会不断向你询问输入，直到你输入0，条件 a!=0 不满足，循环结束。
 
现在，想想怎么用while改进小游戏？有多种写法，大家自己思考下，我不多做说明了。
下图给出一种方法。

解释下：

代码中，我们用了一个叫做 bingo 的变量，来记录是否猜中了结果，猜中了就是 True，没猜中就是 False（bingo本身就是有“赢了”的意思，你也可以命名为 caizhong，这个随意）。
一开始，我们给 bingo 赋值为 False，使程序可以进入循环。
每次循环中，我们都会输入一遍 answer，然后判断是大是小还是相等。如果相等了，再此条件的代码块里面增加一句 bingo = True，修改 bingo 的值，使得程序在下一次循环判断的时候，发现 bingo == False 这个循环条件不再满足，于是程序结束。

注意：这里出现了两层缩进，要保持每层缩进的空格数相同。
 
到此为止，小游戏已经基本成型了。不过好像还差一点：每次自己都知道答案，这玩起来有神马意思。
 
明天来讲，怎么让你不知道电脑的答案。
 
PS：如果你对本课中的 bingo = False、bingo == False 和 bingo = True 感到困惑，先别着急挠头，我们会在后面 11.逻辑判断 课程中进一步详细解释。
 
#======== 作业练习 ========#
你可以在公众号Crossin的编程教室中的课外辅导栏目里找到一些 练习题，学了 while 之后，你可以试一试完成 3~6 题。
 

